home *** CD-ROM | disk | FTP | other *** search
- #
- # README
- #
- # Copyright (c) 1988,1990 Xerox Corporation. All rights reserved.
- # Use and copying of this software and preparation of derivative works based
- # upon this software are permitted. Any distribution of this software or
- # derivative works must comply with all applicable United States export
- # control laws. This software is made available AS IS, and Xerox Corporation
- # makes no warranty about the software, its performance or its conformity to
- # any specification. Any person obtaining a copy of this software is requested
- # to send their name and post office or electronic mail address to:
- # PCR Coordinator
- # Xerox PARC
- # 3333 Coyote Hill Rd.
- # Palo Alto, CA 94304
- #
- #
- # Demers, November 1, 1988 3:11:16 pm PST
- # Weiser, December 1, 1989
- # Boehm, April 8, 1992
- #
-
- Welcome to xr, the Xerox Portable Common Runtime (also known as PCR)!
-
- PCR provides a runtime environment that supports multiple threads,
- dynamic loading, and garbage collection for clients written either in C,
- or in a higher level language, and compiled by a compiler that understands
- PCRs primitives. It supports scheduling of threads by more than one
- UNIX process (and hence by more than one physical processor on a Sun
- multiprocessor, or similar system.) The garbage collector runs mainly
- concurrently with client code.
-
- APOLOGIA
-
- The documentation for 4_4 has been substantially revised. (That for
- 3_4 was so obsolete as to be almost completely useless.) Nonetheless
- a lot more documentation would be useful. The DIST/MAN directory
- contains 4 manual pages. But most of the documentation is really in
- the include files. These are all copied to DIST/INCLUDE/xr by the
- makefile.
-
- In spite of its name, this version has not been tested recently for
- portability. Earlier versions once ran on 68020's and Mach and SunOS 3.5.
- But, all we are sure of about this version is that it runs on Sun-4's under
- SunOS 4.1.1 and 4.1.2.
-
- Current versions of PCR are known to contain operating system dependencies
- that make ports to even other UNIX versions nontrivial. The garbage
- collector write protects pages and catches the resulting bus errors.
- The dynamic loader has to know a lot about load file formats. The
- multiple-UNIX-process architecture requires that open file descriptors
- can be passed between processes. (4.3BSD and derivatives can do
- that, though it's not well-known or well-documented.) The shared
- memory implementation requires that memory segments can be placed
- in the process address space where PCR wants them, and not where the
- kernel wants them. Unfortunately, there seems to be no way to remove
- most of these dependencies without either limiting thread scheduling
- to a single UNIX process (and thus a single physical processor) or
- degrading collector performance.
-
- But we do advise using PCR. We use it. We welcome feedback if you try to
- bring up PCR or port it, but we can't promise much in the way of replies.
- Send commentary mail to PCRCoordinator@parc.xerox.com. Thanks.
-
- GETTING STARTED
-
- If you got this far you must have had 2MB free on your disk. Congratulations.
- To actually build the system you'll need another 12MB free. Make sure you
- have this before going much further. (The PCR executable itself is
- about 665K + symbol table. Much of this does not need to be paged
- in unless you use a large fraction of the 96MB maximum heap size.)
-
- This is the top-level directory. Think of it as the home directory of a "user"
- named "xr". (We literally do this at PARC). Almost all the files used
- when PCR is actually operating remain here, with symbolic links and
- environment variables pointing from individual programs and shell scripts
- back to here.
-
- When you first receive the distribution, there will be two subdirectories:
-
- UTILITIES: a couple of useful commands.
- DIST: the bulk of the PCR distribution.
-
- After you have installed the system, the DIST subdirectory will be replaced by
- subdirectories of the form
-
- xx_yy.zz: PCR version xx_yy, local version zz.
- INSTALLED: a symbolic link to the latest version.
- DEVELOPMENT (optional): the place where changes are being made
-
- Symbolic links will be created in the "usual" places (e.g. /usr/include) that point into the INSTALLED subtree.
-
- For installation instructions, consult DIST/README.
-
-